// test
import java.lang.String;
import java.lang.Character;

class LiczbaException extends Exception {

		LiczbaException(String w) { super(w); };
  
}	
	
public class Liczba {
	public char tab[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G'};
	public int n;
	public String ns;
	
	Liczba() {
		n=11;
		ns="";
	}
	Liczba(int n) {
		this.n=n;
	}	
	Liczba(String n, int podstawa) throws LiczbaException {
	
		if (podstawa==0) throw new LiczbaException("Niepoprawny system!");	
		
		int j;
		int k=0;
		boolean straznik=false;
		
		for (j=(n.length()-1);j>=0;j--){
			k=0;
			while ((k<podstawa) && (straznik==false)){
				if (n.charAt(j)==tab[k]){
					straznik=true;
				}
				k++;
			}
			if (straznik==false){
				throw new LiczbaException("Niepoprawna liczba!");
			}
			straznik=false;
		}
			ns=n;
		
			straznik=false;
			k=0;
			int i=0;
			int suma=0;
			for (j=(n.length()-1);j>=0;j--,i++){
				k=0;
				while ((k<=podstawa) && (straznik==false) && (ns.charAt(j)!=tab[k])){
					if (ns.charAt(j)==tab[k]){
						straznik=true;
					}
					k++;
				}
				suma+=(k*Math.pow(podstawa,i));
			}
			this.n=suma;
			
	}
	public String zapis(int podstawa){

		int liczba = n;
		int liczbaa = liczba;
		int reszta;
		String bin="";
		String bin1="";

		while (liczba!=0){
			liczba /= podstawa;
			reszta = liczbaa % podstawa;
			liczbaa = liczba;	
			bin = bin.concat(Character.toString(tab[reszta]));
		}		

		
		for (int i=0;i<(bin.length());i++){
			bin1 = bin1.concat(Character.toString(bin.charAt(bin.length()-1-i)));
		}
		
		return bin1;	
	
	}
}	